package com.cn.mmd.service;

import com.cn.mmd.model.*;

import java.util.List;

/**
 * 对教师评价的接口
 * Created by Administrator on 2016/7/8.
 */
public interface EvaluateTeacherService {


    /**
     * 在排名表中查出我的分数
     * @param teacherId
     * @return
     */
    TeacherRanking selecteMyAvg(String teacherId);


    /**
     * 查出学生对该老师评价的所有标签
     * @param teacherId
     * @return
     */
    List<StudentEvaluate> selectStudentLabel(String teacherId);

    /**
     * 查出标签库里标签
     * @return
     */
    Label selectAllLabel(Label label);

    /**
     * 查出同事对该老师评价的所有标签
     * @param teacherId
     * @return
     */
    List<ColleagueEvaluate> selectColleagueLabel(String teacherId);


    /**
     * 查出督导对该老师评价的所有标签
     * @param teacherId
     * @return
     */
    List<SupervisorEvaluate> selectSupervisorLabel(String teacherId);

    /**
     * 查出所有对我的自定义评价
     * @param
     * @return
     */
    List<CustomEvaluation> selectAllCustomEvaluation(CustomEvaluation customEvaluation);

    /**
     * 查出自己所在小组的id
     * @return
     */
    List<TeachingGroup> selectTeachingGroupId(String teacherId);

    /**
     * 通过小组id查出小组中其他老师
     * @param
     * @return
     */
    List<TeachingGroup> selectSameGroup(TeachingGroup teachingGroup);

    /**
     * 对同事标签评价
     * @param colleagueEvaluate
     * @return
     */
    int insertColleagueEvaluation(ColleagueEvaluate colleagueEvaluate);

    /**
     * 对老师自定义评价
     * @param customEvaluation
     * @return
     */
    int insertcustomEvaluation(CustomEvaluation customEvaluation);

    /**
     * 查看一级指标权重
     * @param
     * @return
     */
    LabelIndex selectIndex(LabelIndex labelIndex);

    /**
     * 查出所有老师分数
     * @return
     */
    List<TeacherRanking> selectAllAvg();


    /**
     * 通过二级指标名查出其权重
     * @return
     */
    LabelTwoIndex selectByTwoIndexName(LabelTwoIndex labelTwoIndex);

    /**
     * 通过三级指标名查出其权重
     * @return
     */
    LabelThreeIndex selectByThreeIndexName(LabelThreeIndex labelThreeIndex);


    /**
     * 督导对老师标签评价
     * @param supervisorEvaluate
     * @return
     */
    int insertSupervisorEvaluation(SupervisorEvaluate supervisorEvaluate);


    /**
     * 查出小组中的老师
     * @return
     */
    List<TeachingGroup> selectTeachingGroup(int teachingGroupId);


    /**
     * 学生对老师标签评价
     * @param studentEvaluate
     * @return
     */
    int insertStudentEvaluation(StudentEvaluate studentEvaluate);


    /**
     * 查出自定义评价数量
     * @return
     */
    int countCustomEvaluation(String teacherId);


    /**
     * 通过专业查出学生评价数量
     * @return
     */
    int countStudentEvaluateByMajor(StudentEvaluate studentEvaluate);


    /**
     * 查最新一条的开学时间
     * @return
     */
    TermBeginsTime selectTermBeginsTime();
}
